#include "stm32f10x.h"                  // Device header
#include "OLED.h"
#include "LED.h"
#include "Delay.h"
int main(void)
{
	OLED_Init();
	LED_Init();
	OLED_ShowString(2,1,"Hello,ZYF!");
	// 判断复位是由什么触发的
	if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) == SET)		// 如果是IWDG触发的
	{
		OLED_ShowString(1, 1, "IWDGRESET");
		Delay_ms(300);
		OLED_ShowString(1, 1, "         ");
		Delay_ms(100);
		
		RCC_ClearFlag();								// 清除标志位
	}
	else
	{
		OLED_ShowString(1, 1, "PINRESET");
		Delay_ms(300);
		OLED_ShowString(1, 1, "        ");
		Delay_ms(100);
	}
	
	// 初始化看门狗(时钟不用我们开启了???)

	// 配置最大超时时间  1000ms
	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);		// 写入0x5555, 开启写访问
	IWDG_SetPrescaler(IWDG_Prescaler_16);				// 16 预分频值
	IWDG_SetReload(2500 - 1);							// 2500 自动重装值
	IWDG_ReloadCounter();								// 开启之前先喂一遍(喂狗函数)
														// 为什么, 开头喂不喂狗, 怎么效果一样的
	if (IWDG_GetFlagStatus(IWDG_FLAG_RVU) == SET)		// 由此, 得出, 你开头喂不喂都一样?
	{
		LED1_ON();
		Delay_ms(100);
		LED1_OFF();
		Delay_ms(100);
	}
	
	IWDG_Enable();
	
//	if ((RCC->CSR & 0x1) == 0)							// 想看看LSI是否开启
//	{
//		LED2_ON();
//		Delay_ms(100);
//		LED2_OFF();
//		Delay_ms(100);
//	}
	
	while(1)
	{
		IWDG_ReloadCounter();							// 喂狗
		OLED_ShowString(1, 1, "    ");
		Delay_ms(300);
		OLED_ShowString(1, 1, "FEAD");
		Delay_ms(100);
	}
}
